To improve safety and security, communications between devices can be cryptographically encoded. Cryptographic encoding can serve multiple purposes. For example, encryption can protect the message from eavesdropping and maintain the integrity of the content of the message. Encryption can also assist in verification of the identity of a party involved in the transmission or receipt of a message.
The safety and security of communications themselves can additionally be improved by safe and secure use and control of the devices used to transmit and receive the communications. This can be of particular importance when communications are exchanged wirelessly between devices. One device-level procedure is symmetrical coding, in which a transferable common key is used for both coding and decoding of messages. In symmetrical coding, however, all communication participants need the same key in order to encode and decode, requiring transfer of the symmetrical key to other devices. There exist safe but calculation-intense methods for these transfers, such as Diffie-Hellman. These methods are therefore not practical if the devices are not able to carry out the necessary calculations because of insufficient arithmetic capability or energy consumption limitations. These concerns can be relevant, for example, to small, portable electronic devices.
Other procedures used in which a first public key is available, such as on a network, and a second private or secret key is stored locally on a participating device. No exchange of keys is required in such a configuration. The coding and decoding of communications according to such procedures, however, is calculation-intense and again impractical or impossible to use in devices with limited calculation capability or energy consumption concerns. Further, communications can only be exchanged between two devices having the necessary and corresponding keys. Only with additional configurations can coded communications among several devices be exchanged.
Another procedure for the exchange of symmetrical keys involves generating identical cryptographic keys by disparate but similarly situated devices from a common physical characteristic, and different keys from differently situated devices. An assumption in such a procedure is that the devices that will exchange encoded communications are exposed to the same physical characteristic, thereby enabling each to independently and accurately generate an identical key to be used in the encoding and decoding of messages. The identification of the common physical characteristic and the subsequent generation of the identical symmetrical keys are carried out external to the device transmission unit, with the measurement or other determination of the physical characteristic carried out by one or more external sensors or transducers and the subsequent cryptographic key generation by a microcontroller. The microcontroller can then encode the message or information to be transmitted using the generated key and pass the encoded information to the transmission unit. With this procedure external components, with respect to the transmission unit, are used to measure the physical characteristic, adding to the cost, size, and general complexity of the device.